package sanrenxing.teacher.dao;





import sanrenxing.teacher.domain.RoleName;
import sanrenxing.teacher.domain.Teacher;
import sanrenxing.teacher.domain.TeacherTo;

import java.util.List;

public interface TeacherDao {
    /**
     * 将实体对象添加到数据库teacher表中
     * @param teacher 教师对象
     * @return 成功添加的行数(1:添加成功;0:添加失败)
     */
    public int add(Teacher teacher);

    /**
     * 根据教师编号主键从数据库teacher表中删除指定数据
     * @param teacherId 教师编号主键
     * @return 删除影响的行数(1:删除成功;0:删除失败)
     */
    public int delete(int teacherId);

    /**
     * 将教师对象数据修改到数据库Emp表中
     * @param teacher 教师对象
     * @return 修改影响的行数(1:修改成功;0:修改失败)
     */
    public int update(Teacher teacher);

    /**
     * 根据教师编号主键从数据库teacher表中查找单个教师
     * @param teacherId 教师编号主键
     * @return 教师对象(如果返回null值，表示查找失败)
     */
    public Teacher findById(int teacherId);

    /**
     * 查询数据库teacher表中所有教师
     * @return 数据对象集合
     */
    public List<Teacher> findAll();

    /**
     * 从数据库teacher表中查询指定页的教师对象集合
     * @param rows 每页的教师行数
     * @param pages 页数
     * @return 当前页的教师对象集合
     */
    public List<Teacher> findByPage(int rows, int pages);

    /**
     * 统计数据库teacher表中记录总数
     * @return 教师表中记录总数
     */
    public int count();

    /**
     * 条件分页查询
     * @param rows 每页行数
     * @param pages 页数
     * @param condition 条件
     * @return 教师对象集合
     */
    public List<TeacherTo> findByPage(int rows, int pages, String condition);

    /**
     * 条件统计
     * @param condition 条件
     * @return 教师数
     */
    public int count(String condition);

    /**
     * 获取查询条件
     * @param teacher 教师对象
     * @return 条件字符串
     */
    public String getCondition(Teacher teacher);

    /**
     * 查询所有角色
     * @return
     */
    public List<RoleName> findRoleName();

    /**
     * 通过职务名称查询职务编号
     * @param roleName 教师姓名
     * @return
     */
    public int findRoleId(String roleName);
}
